﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LogicaNegocio;

namespace UI
{
    public partial class FrmIniciarSesion : Form
    {
        public FrmIniciarSesion()
        {
            InitializeComponent();
        }

        #region Click
        private void lklRecuperarContraseña_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            FrmRecuperarContraseña frm = new FrmRecuperarContraseña();
            frm.TopLevel = false;
            ((FrmHerramientas)this.MdiParent.MdiChildren[0]).pnlHerramientas.Controls.Add(frm);
            frm.Show();
        }

        private void btnIniciarSesion_Click(object sender, EventArgs e)
        {
            this.lblMensaje.Text = "";
            this.ptbLoading.Visible = true;
            this.btnIniciarSesion.Enabled = false;
            this.bgwSesion.RunWorkerAsync();
        }
        #endregion

        #region BackgroundWroker
        private void bgwSesion_DoWork(object sender, DoWorkEventArgs e)
        {
            string id = this.txtUsuario.Text;
            string contraseña = this.txtContraseña.Text;
            UsuarioLN usuario = new UsuarioLN();
            try
            {
                this.bgwSesion.ReportProgress(0, "Validando...");
                usuario.IniciarSesion(id, contraseña);
                this.bgwSesion.ReportProgress(1, "Correcto.");
            }
            catch (Exception ex)
            {
                this.bgwSesion.ReportProgress(2, ex.Message);
            }
        }

        private void bgwSesion_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            this.lblMensaje.Text = e.UserState.ToString();
        }

        private void bgwSesion_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            this.ptbLoading.Visible = false;
            this.btnIniciarSesion.Enabled = true;
            if (this.lblMensaje.Text == "Correcto.")
            {
                FrmUsuarioActual frm = new FrmUsuarioActual();
                frm.MdiParent = this.MdiParent;
                frm.Show();
                this.Close();
            }
        }
        #endregion

        #region TextBox

        private void txtUsuario_Enter(object sender, EventArgs e)
        {
            if (this.txtUsuario.Text == "Nombre de usuario")
            {
                this.txtUsuario.Text = "";
                this.txtUsuario.ForeColor = SystemColors.Desktop;
            }
        }

        private void txtUsuario_Leave(object sender, EventArgs e)
        {
            if (this.txtUsuario.Text == "")
            {
                this.txtUsuario.Text = "Nombre de usuario";
                this.txtUsuario.ForeColor = SystemColors.GrayText;
            }
        }

        private void txtContraseña_Enter(object sender, EventArgs e)
        {
            if (this.txtContraseña.Text == "Contraseña")
            {
                this.txtContraseña.PasswordChar = '•';
                this.txtContraseña.Text = "";
                this.txtContraseña.ForeColor = SystemColors.Desktop;
            }
        }

        private void txtContraseña_Leave(object sender, EventArgs e)
        {
            if (this.txtContraseña.Text == "")
            {
                this.txtContraseña.PasswordChar = (char)0;
                this.txtContraseña.Text = "Contraseña";
                this.txtContraseña.ForeColor = SystemColors.GrayText;
            }
        }

        #endregion

    }
}
